﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0094)http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html -->
<HTML lang=zh-CN xml:lang="zh-CN" 
xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>以编程方式调用 Apache Ant</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8"><!-- s-header-meta  for china -->
<META http-equiv=PICS-Label 
content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))'><LINK 
href="http://purl.org/DC/elements/1.0/" rel=schema.DC><LINK 
href="http://www.ibm.com/favicon.ico" rel="SHORTCUT ICON">
<META content=dw@cn.ibm.com name=Owner>
<META scheme=rfc1766 content=zh-CN name=DC.Language>
<META content=CN name=IBM.Country>
<META content=Public name=Security><!-- 5.8 0421 egd: Added IBM.Special.Purpose meta tag and the meta tag to suppress the WI login in the masthead -->
<META content=SP001 name=IBM.SpecialPurpose>
<META content=sid=1003 name=IBM.PageAttributes>
<META 
content="本文演示了如何通过 Java 调用 Apache Ant 构建文件。您将检查必要的 Java 代码并了解如何在 WebSphere Application Developer 中运行此代码。" 
name=Abstract>
<META 
content="本文演示了如何通过 Java 调用 Apache Ant 构建文件。您将检查必要的 Java 代码并了解如何在 WebSphere Application Developer 中运行此代码。" 
name=Description>
<META 
content="Apache Ant, Java, Ant, V1.6.2, WebSphere Studio Application Developer , dddwca, tttjca" 
name=Keywords>
<META scheme=iso8601 content=2005-02-09 name=DC.Date>
<META scheme=IBM_ContentClassTaxonomy content=CT316 name=DC.Type>
<META scheme=IBM_SubjectTaxonomy content=BA.007G name=DC.Subject>
<META content="Copyright (c) 2005 by IBM Corporation" name=DC.Rights>
<META content=index,follow name=Robots>
<META scheme=W3CDTF content=2005-02-09 name=IBM.Effective>
<META content=17012007zoucl@cn.ibm.com name="Last update"><!-- STYLESHEETS/SCRIPTS --><!-- for tables --><LINK 
media=screen,print href="以编程方式调用 Apache Ant.files/table.css" type=text/css 
rel=stylesheet><!-- end for tables -->
<SCRIPT language=JavaScript src="以编程方式调用 Apache Ant.files/dwcss14.js" 
type=text/javascript></SCRIPT>
<LINK href="以编程方式调用 Apache Ant.files/main.css" type=text/css 
rel=stylesheet><LINK media=all href="以编程方式调用 Apache Ant.files/screen.css" 
type=text/css rel=stylesheet><LINK media=print 
href="以编程方式调用 Apache Ant.files/print.css" type=text/css rel=stylesheet>
<SCRIPT src="以编程方式调用 Apache Ant.files/ibmcommon.js" 
type=text/javascript>//</SCRIPT>

<SCRIPT language=JavaScript src="以编程方式调用 Apache Ant.files/detection.js" 
type=text/javascript></SCRIPT>

<SCRIPT language=JavaScript src="以编程方式调用 Apache Ant.files/dropdown.js" 
type=text/javascript></SCRIPT>

<SCRIPT language=JavaScript src="以编程方式调用 Apache Ant.files/grabtitle.js" 
type=text/javascript></SCRIPT>

<SCRIPT language=JavaScript src="以编程方式调用 Apache Ant.files/emailfriend2.js" 
type=text/javascript></SCRIPT>
<!--START RESERVED FOR FUTURE USE INCLUDE FILES-->
<SCRIPT language=javascript src="以编程方式调用 Apache Ant.files/ajax1.js" 
type=text/javascript></SCRIPT>

<SCRIPT language=javascript src="以编程方式调用 Apache Ant.files/searchcount.js" 
type=text/javascript></SCRIPT>
<!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
<SCRIPT language=JavaScript type=text/javascript>var emailAbstract = "本文演示了如何通过 Java 调用 Apache Ant 构建文件。您将检查必要的 Java 代码并了解如何在 WebSphere Application Developer 中运行此代码。"; </SCRIPT>

<META content="MSHTML 6.00.2900.5848" name=GENERATOR></HEAD>
<BODY><!--MASTHEAD_BEGIN-->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR vAlign=top>
    <TD class=bbg width=110><A href="http://www.ibm.com/cn/"><IMG height=52 
      alt=IBM® src="以编程方式调用 Apache Ant.files/ibm-logo.gif" width=110 
      border=0></A></TD>
    <TD class=bbg><IMG height=1 alt="" src="以编程方式调用 Apache Ant.files/c.gif" 
      width=1 border=0></TD>
    <TD class=mbbg align=right width=650>
      <TABLE cellSpacing=0 cellPadding=0 align=right border=0>
        <TBODY>
        <TR class=cty-tou>
          <TD class=upper-masthead-corner width=17 rowSpan=2><A 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#main"><IMG 
            height=1 alt=跳转到主要内容 src="以编程方式调用 Apache Ant.files/c.gif" width=1 
            border=0></A></TD>
          <TD align=left>
            <TABLE cellSpacing=0 cellPadding=0 align=left border=0>
              <TBODY>
              <TR>
                <TD><SPAN class=spacer>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><B 
                  class=country>中国</B><SPAN class=spacer>&nbsp;[</SPAN><A 
                  class=ur-link 
                  href="http://www.ibm.com/developerworks/cn/country/">选择</A><SPAN 
                  class=spacer>]</SPAN></TD>
                <TD class=upper-masthead-divider 
                width=29>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
                <TD align=left><A class=ur-link 
                  href="http://www.ibm.com/legal/cn/">使用条款</A></TD></TR></TBODY></TABLE></TD>
          <TD width=40>&nbsp;</TD></TR>
        <TR>
          <TD class=cty-tou-border colSpan=2 height=1><IMG height=1 alt="" 
            src="以编程方式调用 Apache Ant.files/c.gif" width=1></TD></TR>
        <TR>
          <TD colSpan=3><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/c.gif" width=1></TD></TR>
        <TR>
          <TD>&nbsp;</TD>
          <TD align=middle colSpan=2>
            <FORM id=form1 name=form1 
            action=http://www-128.ibm.com/developerworks/search/searchResults.jsp 
            method=get><INPUT type=hidden value=1 name=searchType><INPUT 
            type=hidden value=dWChina name=searchSite><INPUT type=hidden 
            value=zh name=pageLang><INPUT type=hidden value=UTF8 
            name=langEncoding>
            <TABLE cellSpacing=0 cellPadding=0 border=0>
              <TBODY>
              <TR>
                <TD width=1><IMG height=1 alt="Select a scope:" 
                  src="以编程方式调用 Apache Ant.files/c.gif" width=1></TD>
                <TD align=right><LABEL for=sq></LABEL><SELECT 
                  class=input-scope id=sq name=searchScope> <OPTION value=dW 
                    selected>dW 全部内容</OPTION> <OPTION 
                    value=dW>-----------------</OPTION> <OPTION 
                    value=aixunix>&nbsp;&nbsp;AIX and UNIX</OPTION> <OPTION 
                    value=dmdd>&nbsp;&nbsp;Information management</OPTION> 
                    <OPTION value=lotusdd>&nbsp;&nbsp;Lotus</OPTION> <OPTION 
                    value=rdd>&nbsp;&nbsp;Rational</OPTION> <OPTION 
                    value=wsdd>&nbsp;&nbsp;WebSphere</OPTION> <OPTION 
                    value=dW>-----------------</OPTION> <OPTION 
                    value=archZ>&nbsp;&nbsp;Architecture</OPTION> <OPTION 
                    value=gridZ>&nbsp;&nbsp;Grid computing</OPTION> <OPTION 
                    value=javaZ>&nbsp;&nbsp;Java 技术</OPTION> <OPTION 
                    value=linuxZ>&nbsp;&nbsp;Linux</OPTION> <OPTION 
                    value=paZ>&nbsp;&nbsp;Multicore acceleration</OPTION> 
                    <OPTION value=opensrcZ>&nbsp;&nbsp;Open source</OPTION> 
                    <OPTION value=securityZ>&nbsp;&nbsp;Security</OPTION> 
                    <OPTION value=webservZ>&nbsp;&nbsp;SOA &amp; Web 
                    services</OPTION> <OPTION value=webarchZ>&nbsp;&nbsp;Web 
                    development</OPTION> <OPTION 
                    value=xmlZ>&nbsp;&nbsp;XML</OPTION> <OPTION 
                    value=dW>-----------------</OPTION> <OPTION value=all>IBM 
                    全部内容</OPTION></SELECT> </TD>
                <TD align=right width=1><IMG height=1 alt="Search for:" 
                  src="以编程方式调用 Apache Ant.files/c.gif" width=1>&nbsp;&nbsp;</TD>
                <TD align=right><INPUT class=input id=q maxLength=100 size=15 
                  name=query></TD>
                <TD width=7>&nbsp;</TD>
                <TD><LABEL for=q></LABEL><INPUT type=image alt=搜索 
                  src="以编程方式调用 Apache Ant.files/search.gif" value=搜索 
                name=Search></TD>
                <TD 
      width=20>&nbsp;</TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD class=blbg colSpan=3>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD>
            <TABLE cellSpacing=0 cellPadding=0 border=0>
              <TBODY>
              <TR>
                <TD><SPAN class=spacer>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></TD>
                <TD><A class=masthead-mainlink 
                  href="http://www.ibm.com/cn/">首页</A></TD>
                <TD class=masthead-divider 
width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
                <TD><A class=masthead-mainlink 
                  href="http://www.ibm.com/products/cn/">产品</A></TD>
                <TD class=masthead-divider 
width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
                <TD><A class=masthead-mainlink 
                  href="http://www.ibm.com/servicessolutions/cn/">服务与解决方案</A></TD>
                <TD class=masthead-divider 
width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
                <TD><A class=masthead-mainlink 
                  href="http://www.ibm.com/support/cn/">支持与下载</A></TD>
                <TD class=masthead-divider 
width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
                <TD><A class=masthead-mainlink 
                  href="http://www.ibm.com/account/cn/">个性化服务</A></TD>
                <TD><SPAN 
              class=spacer>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!--
<script src="//www.ibm.com/common/v14/pmh.js" language="JavaScript" type="text/javascript"></script>
--><!-- end masthead dw liquid --><!--MASTHEAD_END--><!-- CMA ID: 89119 --><!-- Site ID: 10 -->
<TABLE id=v14-body-table cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR vAlign=top><!--LEFTNAV_BEGIN-->
    <TD id=navigation width=150>
      <TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
        <TBODY>
        <TR>
          <TD class=left-nav-spacer><A class=left-nav-overview 
            href="http://www.ibm.com/developerworks/cn/">&nbsp;</A></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
        <TBODY>
        <TR>
          <TD class=left-nav-overview colSpan=2><A class=left-nav-overview 
            href="http://www.ibm.com/developerworks/cn/">developerWorks<BR>中国</A></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
        <TBODY>
        <TR>
          <TD class=left-nav-highlight colSpan=2><A class=left-nav 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#">本文内容包括：</A></TD></TR>
        <TR class=left-nav-child-highlight>
          <TD><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/cl-bullet.gif" width=2></TD>
          <TD><A class=left-nav-child 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#sec1">引言</A></TD></TR>
        <TR class=left-nav-child-highlight>
          <TD><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/cl-bullet.gif" width=2></TD>
          <TD><A class=left-nav-child 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#sec2">以编程方式调用 
            Ant</A></TD></TR>
        <TR class=left-nav-child-highlight>
          <TD><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/cl-bullet.gif" width=2></TD>
          <TD><A class=left-nav-child 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#sec3">结束语</A></TD></TR>
        <TR class=left-nav-child-highlight>
          <TD><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/cl-bullet.gif" width=2></TD>
          <TD><A class=left-nav-child 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#resources">参考资料 
            </A></TD></TR>
        <TR class=left-nav-child-highlight>
          <TD><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/cl-bullet.gif" width=2></TD>
          <TD><A class=left-nav-child 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#author">关于作者</A></TD></TR>
        <TR class=left-nav-child-highlight>
          <TD><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/cl-bullet.gif" width=2></TD>
          <TD><A class=left-nav-child 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#rate">对本文的评价</A></TD></TR>
        <TR class=left-nav-last>
          <TD width=14><IMG class=display-img height=1 alt="" 
            src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
            width=14></TD>
          <TD width=136><IMG class=display-img height=19 alt="" 
            src="以编程方式调用 Apache Ant.files/left-nav-corner.gif" 
        width=136></TD></TR></TBODY></TABLE><BR>
      <TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
        <TBODY>
        <TR>
          <TD class=related colSpan=2><B class=related>相关链接：</B></TD></TR>
        <TR class=rlinks>
          <TD><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/rl-bullet.gif" width=2></TD>
          <TD><A class=rlinks 
            href="http://www.ibm.com/developerworks/cn/views/websphere/articles.jsp">WebSphere 
            技术文档库</A></TD></TR>
        <TR class=rlinks>
          <TD><IMG height=8 alt="" 
            src="以编程方式调用 Apache Ant.files/rl-bullet.gif" width=2></TD>
          <TD><A class=rlinks 
            href="http://www.ibm.com/developerworks/cn/views/java/articles.jsp">Java 
            technology 技术文档库</A></TD></TR><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- No content currently --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
        <TR>
          <TD width=14><IMG class=display-img height=1 alt="" 
            src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
            width=14></TD>
          <TD width=136><IMG class=display-img height=19 alt="" 
            src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
            width=136></TD></TR></TBODY></TABLE><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- Next Steps Area:  Start --><!-- Commented out the include call in the dwmaster version of this file to prevent ajax calls
     being made during article previews and testing.  Live site has uncommented copy of this file (jpp) --><!-- Call Next Steps Servlet -->
      <SCRIPT language=JavaScript type=text/javascript>
<!--
/*
 * ajaxInclude makes a call to the url and render the results in the div tag specified in divId
 */
function ajaxInclude(url, divId) { 
 var req = newXMLHttpRequest(); 
 if (req) { 
   req.onreadystatechange = getReadyStateHandler(req, 
	function (result) {  
           var contents = document.getElementById(divId);  
           if (result != null && result.length > 0 && contents != null) {
	     contents.innerHTML = result;  
           }
        }); 
   req.open("GET", url, true);
   req.send("");
 }
}
//-->
</SCRIPT>
<!-- Display Next Steps Result -->
      <DIV id=nextsteps></DIV><!-- Initiate Next Steps Call -->
      <SCRIPT language=JavaScript type=text/javascript>
<!-- 
 ajaxInclude("/developerworks/niagara/jsp/getNiagaraContent.jsp?url="+window.location.href,"nextsteps");
//-->
</SCRIPT>
<!-- Next Steps Area:  End --><!--END RESERVED FOR FUTURE USE INCLUDE FILES--></TD><!--LEFTNAV_END-->
    <TD width="100%">
      <TABLE id=content-table cellSpacing=0 cellPadding=0 width="100%" 
        border=0><TBODY>
        <TR vAlign=top>
          <TD width="100%">
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD><A name=main><IMG height=1 alt=跳转到主要内容 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=592 border=0></A></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR vAlign=top>
                <TD width=10 height=18><IMG height=18 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=10></TD>
                <TD width="100%"><IMG height=6 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=1><BR><A class=bctl 
                  href="http://www.ibm.com/developerworks/cn/">developerWorks 
                  中国</A><SPAN class=bct>&nbsp;&nbsp;&gt;&nbsp;&nbsp;</SPAN><A 
                  class=bctl 
                  href="http://www.ibm.com/developerworks/cn/websphere/">WebSphere</A><SPAN 
                  class=bct>&nbsp;|&nbsp;</SPAN><A class=bctl 
                  href="http://www.ibm.com/developerworks/cn/java/">Java 
                  technology</A><SPAN class=bct>&nbsp;&nbsp;&gt;</SPAN><IMG 
                  height=1 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=1><BR>
                  <H1>以编程方式调用 Apache Ant</H1>
                  <P id=subtitle><EM>从 Java 代码使用 Ant 构建文件</EM></P><IMG 
                  class=display-img height=6 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=1></TD>
                <TD class=no-print width=192><IMG height=18 alt=developerWorks 
                  src="以编程方式调用 Apache Ant.files/dw.gif" 
            width=192></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR vAlign=top>
          <TD width=10><IMG height=1 alt="" 
            src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
            width=10></TD>
          <TD width="100%">
            <TABLE class=no-print cellSpacing=0 cellPadding=0 width=160 
            align=right border=0>
              <TBODY>
              <TR>
                <TD width=10><IMG height=1 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=10></TD>
                <TD>
                  <TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
                    <TBODY>
                    <TR>
                      <TD class=v14-header-1-small>文档选项</TD></TR></TBODY></TABLE>
                  <TABLE class=v14-gray-table-border cellSpacing=0 cellPadding=0 
                  border=0>
                    <TBODY>
                    <TR>
                      <TD class=no-padding width=150>
                        <TABLE cellSpacing=0 cellPadding=0 width=143 border=0>
                          <SCRIPT language=JavaScript type=text/javascript>
<!--
document.write('<tr valign="top"><td width="8"><img src="//www.ibm.com/i/c.gif" width="8" height="1" alt=""/></td><td width="16"><img alt="将打印机的版面设置成横向打印模式" height="16" src="//www.ibm.com/i/v14/icons/printer.gif" width="16" vspace="3" /></td><td width="122"><p><b><a class="smallplainlink" href="javascript:print()">打印本页</a></b></p></td></tr>');
//-->
</SCRIPT>
                          <NOSCRIPT></NOSCRIPT>
                          <FORM name=email 
                          action=https://www.ibm.com/developerworks/secure/email-it.jsp><INPUT 
                          type=hidden 
                          value="本文演示了如何通过 Java 调用 Apache Ant 构建文件。您将检查必要的 Java 代码并了解如何在 WebSphere Application Developer 中运行此代码。" 
                          name=body><INPUT type=hidden 
                          value="以编程方式调用 Apache Ant" name=subject><INPUT 
                          type=hidden value=cn name=lang>
                          <SCRIPT language=JavaScript type=text/javascript>
<!--
document.write('<tr valign="top"><td width="8"><img src="//www.ibm.com/i/c.gif" width="8" height="1" alt=""/></td><td width="16"><img src="//www.ibm.com/i/v14/icons/em.gif" height="16" width="16" vspace="3" alt="将此页作为电子邮件发送" /></td><td width="122"><p><a class="smallplainlink" href="javascript:document.email.submit();"><b>将此页作为电子邮件发送</b></a></p></td></tr>');
//-->
</SCRIPT>
                          <NOSCRIPT>
                          <TBODY>
                          <TR vAlign=top>
                            <TD width=8><IMG height=1 alt="" 
                              src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                              width=8></TD>
                            <TD width=16><IMG height=16 alt="" 
                              src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                              width=16></TD>
                            <TD class=small width=122>
                              <P><SPAN class=ast>未显示需要 JavaScript 
                              的文档选项</SPAN></P></TD></TR></NOSCRIPT></FORM></TBODY></TABLE></TD></TR></TBODY></TABLE><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- this content will be automatically generated across all content areas --><!--END RESERVED FOR FUTURE USE INCLUDE FILES--><BR></TD></TR></TBODY></TABLE>
            <P>级别： 初级</P>
            <P><A 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#author">Nell 
            Gawor</A> (<A 
            href="mailto:ngawor@us.ibm.com?subject=以编程方式调用 Apache Ant&amp;cc=ngawor@us.ibm.com">mailto:ngawor@us.ibm.com?subject=以编程方式调用 
            Apache Ant&amp;cc=ngawor@us.ibm.com</A>), 助理软件工程师, IBM<BR></P>
            <P>2005 年 2 月 09 日</P>
            <BLOCKQUOTE>本文演示了如何通过 Java 调用 Apache Ant 构建文件。您将检查必要的 Java 
              代码并了解如何在 WebSphere Application Developer 中运行此代码。</BLOCKQUOTE><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->
            <P><A name=sec1><SPAN class=atitle>引言</SPAN></A></P>
            <P>Apache Ant 是一个基于 Java 的开放源代码构建实用工具。人们常把它与 Make 进行比较，Make 
            长期以来一直用于帮助自动完成构建过程。经过不同版本的改进，Ant 
            已发展成一个丰富的功能库，使其成为适用于许多场合的合适工具。例如，Ant 的当前版本 (V1.6.2) 
            提供的一些任务包括了操作文件内容、执行命令行和 Java 程序以及启动 SSH 和 FTP 连接的功能。</P>
            <P>由于定义所有构建逻辑的 Ant 构建文件都是用 XML 
            编写的，因此，如果需要更改逻辑，则不需要重新编译代码，也不需要了解语言特定的语法。此外，Ant 具有高度的可扩展性。它提供了使用 
            Java™ 创建您自己的自定义任务的功能，之后又可以通过与使用任何其他 Ant 任务相同的方式使用 Java™。所有这些联系在一起意味着 
            Ant 是可以执行很多任务的极好选择。</P>
            <P>在大多数情况下，一旦创建好构建文件，就可以从带有适当目标（例如，<CODE>ant dist</CODE>）的命令行调用 Ant 
            可执行文件来执行它们，也可以使用 WebSphere® Studio Application Developer 
            (Application Developer) 内置 <B>Run Ant</B> 命令来执行它们。然而，也存在更适合于从 Java 
            程序中启动 Ant 的情况。这可能要根据 Java 程序检测到的某组条件来开始一系列的操作，或者，它只是利用程序内丰富的 Ant 
            内置功能。在这种情况下，您需要继续创建一个构建文件，就像从命令行调用 Ant 时那样，但之后您需要将对 Ant Java API 
            的正确调用插入到程序中。本文将通过检查必要的 Java 代码并向您展示如何在 Application Developer 
            内运行此代码来帮助您处理此过程。</P>
            <P>本文只包括使用构建文件从 Java 中调用 Ant 任务的情况。有关此过程的更多信息，请参阅《Apache Ant 用户手册》中的 
            <A href="http://ant.apache.org/manual/antexternal.html">Using Ant 
            Tasks Outside of Ant</A>。</P><BR>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD><IMG height=1 alt="" 
                  src="以编程方式调用 Apache Ant.files/blue_rule.gif" 
                  width="100%"><BR><IMG height=6 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=8 border=0></TD></TR></TBODY></TABLE>
            <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right>
              <TBODY>
              <TR align=right>
                <TD><IMG height=4 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width="100%"><BR>
                  <TABLE cellSpacing=0 cellPadding=0 border=0>
                    <TBODY>
                    <TR>
                      <TD vAlign=center><IMG height=16 alt="" 
                        src="以编程方式调用 Apache Ant.files/u_bold.gif" width=16 
                        border=0><BR></TD>
                      <TD vAlign=top align=right><A class=fbox 
                        href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#main"><B>回页首</B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR>
            <P><A name=sec2><SPAN class=atitle>以编程方式调用 Ant</SPAN></A></P>
            <P>本文中的示例使用 WebSphere Studio Application Developer 
            5.1.2。这些示例可能也适用于其他版本，但尚未经过测试。您可以<A 
            href="http://www.ibm.com/developerworks/websphere/downloads/WSADsupport.html?S_TACT=105AGX52&amp;S_CMP=cn-a-wes">下载</A>免费试用版本。</P>
            <P><A name=sec2a><SPAN class=smalltitle>从 Application Developer 中创建 
            Ant 构建文件</SPAN></A></P>
            <P>在本文中，我们将简要地回顾构建文件的创建以及其他 Ant 基础知识，但并不详细讨论。有关详细信息，请参阅相关内容和<A 
            href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#resources">参考资料</A>部分。</P>
            <P>首先，创建一个新的 Java 项目。转到 <B>File =&gt; New =&gt; Project</B>。选择 
            <B>Java =&gt; Java Project</B> 并单击 <B>Next</B>。输入 
            <CODE>antSample</CODE> 作为项目名称，然后单击 <B>Finish</B>。如果系统询问您是否要切换到 Java 
            透视图，单击 <B>Yes</B>。</P><BR><A name=fig1><B>图 1：创建新的 Java 
            项目</B></A><BR><IMG alt="图 1：在 Application Developer 中创建新的 Java 项目" 
            src="以编程方式调用 Apache Ant.files/newproject.jpg"> <BR>
            <P>现在创建一个简单的 Ant 构建文件，以便您可以对调用进行测试。Ant 构建文件只是一个 xml 文件，因此右键单击 
            antSample 项目，并选择 <B>New =&gt; Other...</B>。然后选择 <B>XML =&gt; XML</B> 
            并单击 <B>Next</B>。选择 <B>Create an XML file from scratch</B>，然后单击 
            <B>Next</B>。将您的文件命名为 <CODE>build.xml</CODE>，然后单击 
            <B>Finish</B>。</P><BR><A name=fig2><B>图 
            2：构建文件创建后的包浏览器</B></A><BR><IMG alt="图 2：构建文件创建后的包浏览器" 
            src="以编程方式调用 Apache Ant.files/explorer.jpg"> <BR>
            <P>将以下代码复制到 xml 文件中，以创建一个简单的构建文件。</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>&lt;project name="testproject" default="test" basedir="."&gt;
	&lt;target name="test"&gt;
		&lt;echo message="Hello World" /&gt;
	&lt;/target&gt;
&lt;/project&gt;
</PRE></TD></TR></TBODY></TABLE><BR>
            <P>保存文件。要验证它是否是一个有效的构建文件，请使用 Application Developer 的内置 Ant 来运行它。在 
            Package Explorer 中右键单击 build.xml 文件，并选择 <B>Run 
            Ant...</B>。目标“test”应已选中以待运行，因为它是缺省目标，因此单击 
            <B>Run</B>。您应在控制台中看到如下输出：</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>Buildfile: C:\tempWorkspace\antSample\build.xml
test:
        [echo] Hello World
BUILD SUCCESSFUL
Total time: 4 seconds
</PRE></TD></TR></TBODY></TABLE><BR>
            <P><A name=sec2b><SPAN class=smalltitle>创建类来调用 Ant</SPAN></A></P>
            <P>既然您已验证构建文件的正确性，那么您需要创建一个可以用于通过 Ant Java API 调用此构建文件的 Java 类。右键单击 
            antSample 项目，并选择 <B>New =&gt; Class</B>。输入 <CODE>AntSample</CODE> 
            作为此类的名称，并选中 <B>Which method stubs would you like to create?</B> 问题下 
            <B>public static void main(String[] args)</B> 旁边的复选框。单击 
            <B>Finish</B>，系统将创建您的 AntSample 类及其主方法。</P>
            <P>由于您将使用 Ant API，因此接下来您需要将 JAR 文件 Ant 需求添加到类路径中。右键单击 antSample 
            项目，并从菜单中选择 <B>Properties</B>。单击 <B>Java Build Path</B>，选择 
            <B>Libraries</B> 选项卡，然后选择 <B>Add External Jars...</B>。定位您安装 
            WebSphere Studio 的文件夹，然后导航到 <B>eclipse =&gt; plugins =&gt; 
            org.apache.ant_1.5.3</B>。选择 <B>ant.jar</B> 并单击 <B>Open</B>。再次选择 
            <B>Add External Jars...</B>，然后导航到 <B>eclipse =&gt; plugins =&gt; 
            org.apache.xerces_4.0.13</B>。</P>
            <P>选择 <B>xerces.jar</B> 和 <B>xmlParserAPIs.jar</B>，然后再次单击 
            <B>Open</B>。现在，您的构建路径应如下所示：</P><BR><A name=N1011D><B>图 3：新的 Java 
            构建路径</B></A><BR><IMG alt="图 3：新的 Java 构建路径" 
            src="以编程方式调用 Apache Ant.files/buildpath.jpg"> <BR>
            <P>单击 <B>Properties</B> 对话框上的 <B>OK</B>，返回到您的 AntSample 类。将以下代码添加到 
            AntSample 的主方法中：</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>File buildFile = new File("build.xml");
Project p = new Project();
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
helper.parse(p, buildFile);
p.executeTarget(p.getDefaultTarget());
</PRE></TD></TR></TBODY></TABLE><BR>
            <P>右键单击文件中的任何位置，并选择 <B>Source =&gt; Organize 
            Imports</B>。这将清除任何错误。保存此文件。</P>
            <P>通过在 Package Explorer 中高亮显示 AntSample.Java，然后转到 <B>Run =&gt; Run 
            As =&gt; Java Application</B> 
            来运行此代码。如果切换到此控制台，您将看到此程序正常运行和退出，但它不会产生任何输出。</P>
            <P>为了找出原因，让我们检查一下代码，看看它在做什么。首先，它从构建文件创建一个文件对象，然后创建一个新的 Project 
            对象。Project 是 Ant 用于表示带有其所有目标、任务和属性的 Ant 项目的 Java 
            类。它初始化此项目；这将导致该项目执行某一内部安装程序。然后，它定位缺省的 ProjectHelper，并使用该 
            ProjectHelper 分析此构建文件，并将来自构建文件的信息填充到项目中。接下来，它将执行此项目的缺省目标。</P>
            <P>您还可以通过传递目标名称，例如 
            <CODE>p.executeTarget("test")</CODE>，来执行此构建文件中的任何目标（在此构建文件中，碰巧只有一个目标）。即使所有这些操作都成功完成，您仍看不到任何输出，因为 
            Ant 不知道应将结果输出到哪里。当通过命令行或 Application Developer 执行 Ant 
            时，输出将自动转到控制台。但是此处您需要明确指出。您需要添加一个 BuildLogger 
            作为侦听器，这样，它就可以接收构建过程中发出的事件通知。</P>
            <P><A name=sec2c><SPAN class=smalltitle>记录器</SPAN></A></P>
            <P>您可以使用几种不同的 BuildLogger，包括 
            DefaultLogger、AnsiColorLogger、MailLogger 和 NoBannerLogger。您也可以编写自己的 
            BuildLogger，并将其注册到项目中。事实上，您可以注册实现 BuildListener 
            接口的任何类，以接收构建事件，并对您的类中的这些构建事件做出响应（例如，接收一个 taskCompleted 
            事件，并增加进度栏）。对于这种情况，请注册最简单的记录器和 
            DefaultLogger，并将输出消息直接输出到标准输出，将错误消息直接输出到标准错误。要做到这一点，请在创建项目之后初始化项目之前添加以下代码行：</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
p.addBuildListener(consoleLogger);
</PRE></TD></TR></TBODY></TABLE><BR>
            <P>请注意，可以将此消息输出配置为几种不同的级别。右键单击此类文件中的任何位置，并选择 <B>Source =&gt; 
            Organize Imports</B>，然后保存。现在，通过转到 <B>Run</B> 菜单并选择 <B>Run Last 
            Launched</B> 
            来再次运行该程序。您将看到，您正在获取一些输出，但它们与您之前获取的输出并不完全相同。您现在在控制台中看到的输出应为：</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>test:
     [echo] Hello World
</PRE></TD></TR></TBODY></TABLE><BR>
            <P><A name=sec2d><SPAN class=smalltitle>构建事件</SPAN></A></P>
            <P>虽然您现在正在获取输出，但却没有获取关于构建操作是否成功完成或者构建的运行时间的任何信息。最终您还需要激发某些事件，以让 Ant 
            知道正在启动构建，并且已完成。您还需要将 execute() 方法抛出的任何异常加入到 fireBuildFinished 
            方法中，以便能够传递到侦听器。添加此代码后，主方法如下所示：</P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>File buildFile = new File("build.xml");
Project p = new Project();
		
DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
p.addBuildListener(consoleLogger);
try {
	p.fireBuildStarted();
	p.init();
	ProjectHelper helper = ProjectHelper.getProjectHelper();
	helper.parse(p, buildFile);
	p.executeTarget(p.getDefaultTarget());
	p.fireBuildFinished(null);
} catch (BuildException e) {
	p.fireBuildFinished(e);
}
</PRE></TD></TR></TBODY></TABLE><BR>
            <P>右键单击类文件中的任何位置，并选择 <B>Source =&gt; Organize 
            Imports</B>，然后保存。此时，如果您运行此代码，就会看到所希望的输出。要更改输出中的信息数量，请更改消息输出级别（而不是尝试更改 
            <CODE>Project.MSG_VERBOSE</CODE>）。</P>
            <TABLE cellSpacing=0 cellPadding=0 width="40%" align=right 
              border=0><TBODY>
              <TR>
                <TD width=10><IMG height=1 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=10></TD>
                <TD>
                  <TABLE cellSpacing=0 cellPadding=5 width="100%" border=1>
                    <TBODY>
                    <TR>
                      <TD bgColor=#eeeeee><A name=N10187><B>Ant 
                        的旧版本</B></A><BR>
                        <P>本文本中的代码适用于 Apache Ant 1.5 或更高版本。如果需要使用 Ant 
                        的旧版本，您需要做一些更改。首先，替换以下代码： 
                        <TABLE cellSpacing=0 cellPadding=0 width=30 border=0>
                          <TBODY>
                          <TR>
                            <TD class=code-outline><PRE class=displaycode>ProjectHelper helper = 
	ProjectHelper.getProjectHelper();
helper.parse(p, buildFile);
</PRE></TD></TR></TBODY></TABLE><BR>您需要使用下面的代码（现已弃用）来达到相同的效果：
                        <TABLE cellSpacing=0 cellPadding=0 width="100%" 
border=0>
                          <TBODY>
                          <TR>
                            <TD class=code-outline><PRE class=displaycode>Project.configureProject(p, buildFile);
</PRE></TD></TR></TBODY></TABLE><BR>其次，在 Ant 的版本 1.4 
                        中，激发事件的方法受到保护。如果您只需使用 1.4 或更早期的版本，您完全可以忽略这些方法。但是，如果您需要使用 
                        1.4 到 1.6+ 的版本，则需要扩展 Project 类来公开这些方法，然后使用您自己的 Project 
                        类。</P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
            <P><A name=sec2e><SPAN class=smalltitle>属性</SPAN></A></P>
            <P>就像在任何其他 Ant 
            构建文件中一样，您可以定义属性或将属性文件导入到此构建文件中。但可能存在这样的情况，即您希望以编程方式提供这些属性，或覆盖构建文件中的值。编辑 
            <B>build.xml</B> 文件并将 Hello World 替换为 <CODE>Hello 
            ${name}</CODE>。正是这个语法告诉 Ant 在运行时执行变量替换。保存文件。</P>
            <P>如果再次运行您的程序 (<B>Run =&gt; Run Last Launched</B>)，您将看到该程序输出“Hello 
            ${name}”，因为尚未设置此变量“name”的值。在 AntSample.java 中，在创建此 Project 
            对象的位置的下面添加以下行：</P>
            <TABLE cellSpacing=0 cellPadding=0 width=50 border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>p.setProperty("name", "Bob");
</PRE></TD></TR></TBODY></TABLE><BR>
            <P>保存文件。现在再次运行 AntSample (<B>Run =&gt; Run Last 
            Launched</B>)。您应看到如下输出：</P>
            <TABLE cellSpacing=0 cellPadding=0 width=50 border=0>
              <TBODY>
              <TR>
                <TD class=code-outline><PRE class=displaycode>test:
     [echo] Hello Bob
BUILD SUCCESSFUL
Total time: 1 second
</PRE></TD></TR></TBODY></TABLE><BR>
            <P>您甚至可以在回显任务之前将行 <CODE>&lt;property name="name" value="Sally" 
            /&gt;</CODE> 添加到 <I>build.xml</I> 
            文件中，但这不会产生任何变化。以编程方式设置的属性将始终覆盖在构建文件中设置的属性。</P><BR>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD><IMG height=1 alt="" 
                  src="以编程方式调用 Apache Ant.files/blue_rule.gif" 
                  width="100%"><BR><IMG height=6 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=8 border=0></TD></TR></TBODY></TABLE>
            <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right>
              <TBODY>
              <TR align=right>
                <TD><IMG height=4 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width="100%"><BR>
                  <TABLE cellSpacing=0 cellPadding=0 border=0>
                    <TBODY>
                    <TR>
                      <TD vAlign=center><IMG height=16 alt="" 
                        src="以编程方式调用 Apache Ant.files/u_bold.gif" width=16 
                        border=0><BR></TD>
                      <TD vAlign=top align=right><A class=fbox 
                        href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#main"><B>回页首</B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR>
            <P><A name=sec3><SPAN class=atitle>结束语</SPAN></A></P>
            <P>既然您掌握了基础知识，那么学习更多知识的最好方法就是亲自实践 Ant javadoc 以展开您所做的工作。遗憾的是，Ant 
            javadoc 不是 Application Developer 的一部分，并且不能用于在 Apache Ant 
            网站上进行在线浏览。这将确保您正在查看与您的 Ant 版本相匹配的 Javadoc。为了获得这些 Javadoc，您需要从 
            http://archive.apache.org/dist/ant/binaries/ 下载 Apache Ant 
            V1.5.3（Application Developer 5.1.2 附带的版本）。之后，将这些 Javadoc 存放在 
            ANT_HOME\docs\manual\api 中。如果希望使用比 Application Developer 5.1.2 
            所附带的版本更新的 Ant 版本，请搜索 Application Developer 帮助以找到“升级 Ant”(Upgrading 
            Ant) 或“使用不同版本的 Ant”(Using a Different Version of Ant)。</P><BR><BR>
            <P><A name=resources><SPAN class=atitle>参考资料 </SPAN></A></P>
            <UL>
              <LI>您可以参阅本文在 developerWorks 全球站点上的 <A 
              href="http://www.ibm.com/developerworks/websphere/library/techarticles/0502_gawor/0502_gawor.html?S_TACT=105AGX52&amp;S_CMP=cn-a-wes" 
              target=_blank>英文原文</A>。<BR><BR>
              <LI><A href="http://ant.apache.org/">Apache Ant 网站</A>是提供关于 Apache 
              Ant 的文档以及获得 Ant 的更新版本的最佳资源。<BR><BR>
              <LI>文章 <A 
              href="http://www.onjava.com/pub/a/onjava/2002/07/24/antauto.html?page=1">Java 
              Software Automation with Jakarta Ant</A>（OnJava，2002 年 8 
              月）现已过时，但是如果您正在使用 Ant 的旧版本，那么这篇文章可能有用。<BR><BR>
              <LI>通过参与 <A 
              href="http://www.ibm.com/developerworks/blogs/?S_TACT=105AGX52&amp;S_CMP=cn-a-wes">developerWorks 
              blogs</A> 加入到 developerWorks 社区。<BR><BR>
              <LI>购买<A 
              href="http://devworks.krcinfo.com/WebForms/ProductList.aspx?Search=Category&amp;id=2500">打折的 
              WebSphere 书籍</A>。<BR><BR>
              <LI>查找关于 <A 
              href="http://www.ibm.com/developerworks/cn/websphere/zones/studio/index.html">WebSphere 
              Studio Application Developer</A> 的更多信息。<BR></LI></UL><BR><BR>
            <P><A name=author><SPAN class=atitle>关于作者</SPAN></A></P>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD colSpan=3><IMG height=5 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width="100%"></TD></TR>
              <TR vAlign=top align=left>
                <TD>
                  <P></P></TD>
                <TD><IMG height=5 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=4></TD>
                <TD width="100%">
                  <P>Nell Gawor 在北卡莱罗纳州的三角研究工业园 (Research Triangle Park) 工作，她是 
                  IBM Software Group System House Advanced Technology Group 
                  的一名助理软件工程师。她获得了伊利诺大学香槟分校 (University of Illinois at 
                  Urbana-Champaign) 的计算机科学硕士学位。您可以通过 <A 
                  href="mailto:ngawor@us.ibm.com?cc=ngawor@us.ibm.com">mailto:ngawor@us.ibm.com?cc=ngawor@us.ibm.com</A>与她联系。 
                  </P></TD></TR></TBODY></TABLE><BR><BR><BR>
            <P class=no-print><SPAN class=atitle><A 
            name=rate>对本文的评价</A></SPAN></P><SPAN class=no-print>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR vAlign=top>
                <TD>
                  <FORM 
                  action=https://www.ibm.com/developerworks/secure/cnratings.jsp 
                  method=get><INPUT type=hidden value="以编程方式调用 Apache Ant" 
                  name=ArticleTitle><INPUT type=hidden 
                  value="WebSphere, Java technology" name=Zone><INPUT 
                  type=hidden 
                  value=http://www.ibm.com/developerworks/cn/thankyou/ 
                  name=RedirectURL><INPUT type=hidden value=china 
name=localsite>
                  <SCRIPT language=javascript>document.write('<input type="hidden" name="url" value="'+location.href+'" />');</SCRIPT>

                  <TABLE cellSpacing=0 cellPadding=0 border=0>
                    <TBODY>
                    <TR>
                      <TD><IMG height=8 alt="" 
                        src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                        width=100 border=0></TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=1 name=Rating>太差！ (1)</TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=2 name=Rating>需提高 (2)</TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=3 name=Rating>一般；尚可 
(3)</TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=4 name=Rating>好文章 (4)</TD></TR>
                    <TR vAlign=top>
                      <TD><INPUT type=radio value=5 
                    name=Rating>真棒！(5)</TD></TR></TBODY></TABLE><BR><B>建议？</B><BR><TEXTAREA id=Comments name=Comments rows=5 wrap=virtual cols=60>&nbsp;</TEXTAREA><BR><BR><INPUT type=submit value=反馈意见></FORM></TD></TR>
              <TR vAlign=top>
                <TD bgColor=#ffffff><IMG height=8 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width=100 border=0></TD></TR></TBODY></TABLE></SPAN><BR>
            <P><!-- --></P><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><BR><!--END RESERVED FOR FUTURE USE INCLUDE FILES--><BR><SPAN 
            class=no-print>
            <TABLE cellSpacing=0 cellPadding=0 align=right>
              <TBODY>
              <TR align=right>
                <TD><IMG height=8 alt="" 
                  src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
                  width="100%"><BR>
                  <TABLE cellSpacing=0 cellPadding=0 border=0>
                    <TBODY>
                    <TR>
                      <TD vAlign=center><IMG height=16 alt="" 
                        src="以编程方式调用 Apache Ant.files/u_bold.gif" width=16 
                        border=0><BR></TD>
                      <TD vAlign=top align=right><A class=fbox 
                        href="http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0502_gawor/0502_gawor.html#main"><B>回页首</B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR></SPAN></TD>
          <TD width=10><IMG height=1 alt="" 
            src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(1).gif" 
            width=10></TD></TR></TBODY></TABLE><SPAN class=small>IBM 公司保留在 
      developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可，请勿转载。如果您希望转载，请通过 <A 
      href="https://www.ibm.com/developerworks/secure/reprintreq.jsp?domain=dwchina">提交转载请求表单</A> 
      联系我们的编辑团队。</SPAN></TD></TR></TBODY></TABLE><!--FOOTER_BEGIN--><!-- IBM FOOTER -->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD class=bbg height=19>
      <TABLE cellSpacing=0 cellPadding=0 border=0>
        <TBODY>
        <TR>
          <TD><SPAN class=spacer>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><A 
            class=mainlink href="http://www.ibm.com/cn/ibm/index.shtml">关于 
            IBM</A></TD>
          <TD class=footer-divider width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD><A class=mainlink 
            href="http://www.ibm.com/cn/ibm/privacy/index.shtml">隐私条约</A></TD>
          <TD class=footer-divider width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD><A class=mainlink href="http://www.ibm.com/contact/cn/">联系 
            IBM</A></TD>
          <TD class=footer-divider width=27>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD><A class=mainlink 
          href="http://www.ibm.com/legal/cn/zh/">使用条款</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- end footer -->
<SCRIPT language=JavaScript1.2 src="以编程方式调用 Apache Ant.files/stats.js" 
type=text/javascript></SCRIPT>
<NOSCRIPT><IMG height=1 alt="" 
src="D:\alibaba\chaochao.liaocc\workspace\antSample\以编程方式调用 Apache Ant.files\c(2).gif" 
width=1 border=0></NOSCRIPT><!--FOOTER_END--><!--XSLT stylesheet used to transform this file:  dw-document-html-5.10.xsl--></BODY></HTML>
